home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / 90xx / 9001a.d64 / qll zollrhc (.txt) < prev    next >
Commodore BASIC  |  1995-03-30  |  7KB  |  354 lines

  1. 2 REM          ZOLLRASTERHARDCOPY
  2. 3 REM
  3. 4 REM          VON NORBERT RAMEK
  4. 5 REM          IGNAZ RIEDERKAI 17
  5. 6 REM          A-5020 SALZBURG
  6. 7 REM
  7. 20 REM    OPEN 1,4:PRINT#1,CHR$(15);CHR$(27);CHR$(108);CHR$(15);
  8. 100 SYS8*4096
  9. 110 *= $6400
  10. 120 .OPT OO
  11. 200 PRINT = $FFD2
  12. 250 CHKOUT = $FFC9
  13. 260 CLRCH = $FFCC
  14. 270 CLOSE = $FFC3
  15. 300 ZLE = *-1
  16. 310 SPLTE = *-2
  17. 320 PIXNR = *-3
  18. 330 TBPTR = *-4
  19. 340 TBSTRT = *-5
  20. 350 SPERR = *-6
  21. 360 ENDZLE = *-7
  22. 370 DRKBYTE = *-15
  23. 2000 ;
  24. 2001 ;HARDCOPY
  25. 2002 ;********
  26. 2003 ;
  27. 2010 LDX #1;LOG. FILENUMMER
  28. 2020 JSR CHKOUT
  29. 2030 LDA #0;STARTADRESSE LI GRAF
  30. 2040 STA $FD;LO
  31. 2050 LDA #$20
  32. 2060 STA $FE;HI
  33. 2070 LDA #0;LF SPERREN
  34. 2080 STA SPERR
  35. 2090 STA ENDZLE
  36. 2100 LDA #9
  37. 2110 STA ZLE
  38. 2120 LDA #$1B;DRUCKER INITIALISIEREN
  39. 2130 JSR PRINT
  40. 2140 LDA #$40
  41. 2150 JSR PRINT
  42. 2160 JSR DRK;ZEILEN 1-10 (LI+RE) DRUCKEN
  43. 2170 LDA #$80;STARTADRESSE ZEILE 11
  44. 2180 STA $FD;LO
  45. 2190 LDA #$2C
  46. 2200 STA $FE;HI
  47. 2210 LDA #9
  48. 2220 STA ZLE
  49. 2230 JSR DRK;ZEILEN 11-20 DRUCKEN
  50. 2240 LDA #0;STARTADRESSE ZEILE 21
  51. 2250 STA $FD;LO
  52. 2260 LDA #$39
  53. 2270 STA $FE;HI
  54. 2280 LDA #5
  55. 2290 STA ZLE;UNGLEICH 0 ALS FLAG
  56. 2300 STA ENDZLE
  57. 2310 JSR DRK;ZEILEN 21-25 DRUCKEN
  58. 2320 LDX #0;VORSCHUB 10/216 + INITIALISIEREN
  59. 2330 ES3 LDA ESCTB3,X
  60. 2340 JSR PRINT
  61. 2350 INX
  62. 2360 CPX #6
  63. 2370 BNE ES3
  64. 2380 JSR CLRCH
  65. 2390 LDA #1;LOG. FILENUMMER
  66. 2400 JSR CLOSE
  67. 2410 RTS;ZU BASIC
  68. 2500 ;--- AUSDRUCK 10 GRAFIKZEILEN (LI+RE) ---
  69. 2510 DRK LDA #0;STARTEWERT IN TABELLE
  70. 2520 STA TBSTRT
  71. 2530 ;1. DRUCKDURCHGANG
  72. 2540 DRK1 JSR LF
  73. 2550 LDA #1;LF FREIGEBEN
  74. 2560 STA SPERR
  75. 2570 JSR GRMOD;GRAFIKMODUS EINLEITEN
  76. 2580 JSR DD;1 BILDSCHIRMZEILE DRUCKEN
  77. 2590 JSR AD1;GRAFIKADR. AUF RE GRAF
  78. 2600 JSR DD
  79. 2610 LDA #$0A;LF
  80. 2620 JSR PRINT
  81. 2630 JSR AD2;GRAFIKADR. AUF LI GRAF
  82. 2640 JSR AD3;ADRESSE ZURUECK ZEILENANFANG
  83. 2650 ;2. DRUCKDURCHGANG
  84. 2660 JSR GRMOD;GRAFIKMODUS EINLEITEN
  85. 2670 INC TBSTRT
  86. 2680 JSR DD;1 BILDSCHIRMZEILE DRUCKEN
  87. 2690 JSR AD1;GRAFIKADR. AUF RE GRAF
  88. 2700 JSR DD
  89. 2710 LDA #$0A;LF
  90. 2720 JSR PRINT
  91. 2730 JSR AD2;GRAFIKADR. AUF LI GRAF
  92. 2740 JSR AD3;ADRESSE ZURUECK ZEILENANFANG
  93. 2750 ;3. DRUCKDURCHGANG
  94. 2760 JSR GRMOD;GRAFIKMODUS EINLEITEN
  95. 2770 INC TBSTRT
  96. 2780 JSR DD;1 BILDSCHIRMZEILE DRUCKEN
  97. 2790 JSR AD1;GRAFIKADR. AUF RE GRAF
  98. 2800 JSR DD
  99. 2810 JSR AD2;GRAFIKADR. AUF LI GRAF
  100. 2820 CLC;STARTWERT IN TAB. ERHOEHEN
  101. 2830 LDA TBSTRT
  102. 2840 ADC #22;+2 MAL INC = 24/216
  103. 2850 STA TBSTRT
  104. 2860 DEC ZLE
  105. 2870 BNE DRK1;NAECHSTE ZEILE
  106. 2880 RTS
  107. 3000 ;--- AUSDRUCK 1 DRUCKERZEILE ---
  108. 3010 DD LDA #40
  109. 3020 STA SPLTE
  110. 3030 DD9 LDA TBSTRT;STARTWERT IN TABELLE
  111. 3040 STA TBPTR
  112. 3050 LDA #0;DRUCKERBYTES LOESCHEN
  113. 3060 LDY #7
  114. 3070 LS1 STA DRKBYTE,Y
  115. 3080 DEY
  116. 3090 BPL LS1
  117. 3100 ;NADELN VON OBEREN 8*8 FELD SETZEN
  118. 3110 LDY #0
  119. 3120 DD1 LDA ($FD),Y;BITMUSTER GRAFIKBYTE
  120. 3130 LDX #0;GRAFIKPIXEL 0-7
  121. 3140 DD2 ASL;LINKES BIT INS CARRY
  122. 3150 BCC DD3;WENN PIXEL GELOESCHT
  123. 3160 PHA;VERSCHOBENES GRAFIKBYTE MERKEN
  124. 3170 STX PIXNR;MERKEN
  125. 3180 LDX TBPTR
  126. 3190 LDA NADELTB,X;NUMMER ZUGEORDN. NADEL
  127. 3200 JSR UMR1;IN DRUCKER-GRAFIKBYTE UMRECHNEN
  128. 3210 LDX PIXNR;ZURUECK
  129. 3220 ORA DRKBYTE,X
  130. 3230 STA DRKBYTE,X;BIT FUER NADEL SETZEN
  131. 3240 PLA;VERSCHOBENES GRAFIKBYTE ZURUECK
  132. 3250 DD3 INX
  133. 3260 CPX #8
  134. 3270 BNE DD2
  135. 3280 INC TBPTR;AUF NAECHSTE NADEL
  136. 3290 INC TBPTR
  137. 3300 INC TBPTR
  138. 3310 INY
  139. 3320 CPY #8
  140. 3330 BNE DD1;NAECHSTES GRAFIKBYTE
  141. 3500 ;GRAFIKADRESSE AUF UNTERES 8*8 FELD
  142. 3510 CLC;+320
  143. 3520 LDA #$40;LO
  144. 3530 ADC $FD
  145. 3540 STA $FD
  146. 3550 LDA #1;HI
  147. 3560 ADC $FE
  148. 3570 STA $FE
  149. 3600 ;NADELN VON UNTEREN 8*8 FELD SETZEN
  150. 3610 LDA TBSTRT;STARTWERT IN TABELLE
  151. 3620 STA TBPTR
  152. 3630 LDY #0
  153. 3640 DD4 LDA ENDZLE;AUF UNTEREN RAND TESTEN
  154. 3650 BEQ DD10
  155. 3660 LDA ZLE
  156. 3670 CMP #1
  157. 3680 BEQ DD11;NADELN U. FELD UEBERSPR.
  158. 3690 DD10 LDA ($FD),Y;BITMUSTER GRAFIKBYTE
  159. 3700 LDX #0;GRAFIKPIXEL 0-7
  160. 3710 DD5 ASL;LINKES BIT INS CARRY
  161. 3720 BCC DD6;WENN PIXEL GELOESCHT
  162. 3730 PHA;VERSCHOBENES GRAFIKBYTE MERKEN
  163. 3740 STX PIXNR;MERKEN
  164. 3750 LDX TBPTR
  165. 3760 LDA NADELTB,X;NUMMER ZUGEORDN. NADEL
  166. 3770 JSR UMR2;IN DRUCKER-GRAFIKBYTE UMRECHNEN
  167. 3780 LDX PIXNR
  168. 3790 ORA DRKBYTE,X
  169. 3800 STA DRKBYTE,X;BIT FUER NADEL SETZEN
  170. 3810 PLA;VERSCHOBENES GRAFIKBYTE ZURUECK
  171. 3820 DD6 INX
  172. 3830 CPX #8
  173. 3840 BNE DD5
  174. 3850 INC TBPTR;AUF NAECHSTE NADEL
  175. 3860 INC TBPTR
  176. 3870 INC TBPTR
  177. 3880 INY
  178. 3890 CPY #8
  179. 3900 BNE DD4;NAECHSTES GRAFIKBYTE
  180. 4000 ;GRAFIKADRESSE AUF NAECHSTES FELD OBEN
  181. 4010 DD11 SEC;-320+8=-312
  182. 4020 LDA $FD;LO
  183. 4030 SBC #$38
  184. 4040 STA $FD
  185. 4050 LDA $FE;HI
  186. 4060 SBC #1
  187. 4070 STA $FE
  188. 4080 ;DATEN ZUM DRUCKER SCHICKEN
  189. 4090 LDX #0
  190. 4100 DD7 LDA DRKBYTE,X
  191. 4110 JSR PRINT
  192. 4120 JSR PRINT
  193. 4130 JSR PRINT
  194. 4140 INX
  195. 4150 CPX #8
  196. 4160 BNE DD7
  197. 4170 DEC SPLTE
  198. 4180 BEQ DD8
  199. 4190 JMP DD9;NEACHSTES FELD
  200. 4200 DD8 RTS
  201. 4500 ;--- UMRECHNUNG TABELLENWERT IN DRUCKERBYTE ---
  202. 4510 UMR1 LSR;HI-NIBBEL HERAUSFILTERN
  203. 4520 LSR
  204. 4530 LSR
  205. 4540 LSR
  206. 4550 TAX
  207. 4560 LDA TABUMR,X
  208. 4570 RTS
  209. 4580 UMR2 AND #%00001111;LO-NIBBEL HERAUSFILTERN
  210. 4590 TAX
  211. 4600 LDA TABUMR,X
  212. 4610 RTS
  213. 5000 ;
  214. 5001 ;DIV. UNTERPROGRAMME
  215. 5002 ;*******************
  216. 5003 ;
  217. 5010 ;GRAFIKMODUS EINLEITEN
  218. 5020 GRMOD LDX #0
  219. 5030 ES1 LDA ESCTB1,X
  220. 5040 JSR PRINT
  221. 5050 INX
  222. 5060 CPX #7
  223. 5070 BNE ES1
  224. 5080 RTS
  225. 5200 ;VORSCHUB 22/216 ZOLL
  226. 5210 LF LDA SPERR;BEIM 1. MAL UEBERSPRINGEN
  227. 5220 BEQ LF1
  228. 5230 LDX #0
  229. 5240 ES2 LDA ESCTB2,X
  230. 5250 JSR PRINT
  231. 5260 INX
  232. 5270 CPX #4
  233. 5280 BNE ES2
  234. 5290 LF1 RTS
  235. 5400 ;GRAFIKADRESSE AUF RE GRAF ERHOEHEN
  236. 5410 AD1 CLC;+8192-320=+7872
  237. 5420 LDA $FD;LO
  238. 5430 ADC #$C0
  239. 5440 STA $FD
  240. 5450 LDA $FE;HI
  241. 5460 ADC #$1E
  242. 5470 STA $FE
  243. 5480 RTS
  244. 5600 ;GRAFIKADRESSE AUF LI GRAF ERNIEDRIGEN
  245. 5610 AD2 SEC;-8192
  246. 5620 LDA $FE;HI
  247. 5630 SBC #$20
  248. 5640 STA $FE
  249. 5650 RTS
  250. 5800 ;GRAFIKADRESSE ZURUECK AUF ZEILENANFANG
  251. 5810 AD3 SEC;-320
  252. 5820 LDA $FD;LO
  253. 5830 SBC #$40
  254. 5840 STA $FD
  255. 5850 LDA $FE
  256. 5860 SBC #1;HI
  257. 5870 STA $FE
  258. 5880 RTS
  259. 6000 ;
  260. 6001 ;ESC-TABELLEN
  261. 6002 ;************
  262. 6003 ;
  263. 6010 ESCTB1 .BYTE $1B,$33,$01;ZEILENABSTAND 1/216
  264. 6020 .BYTE $1B,$5A,$80,$07;ESC Z  1920 PUNKTE
  265. 6030 ESCTB2 .BYTE $1B,$33,$16,$0A;ZEILENABSTAND 22/216 + LF
  266. 6040 ESCTB3 .BYTE $1B,$33,$0A,$0A,$1B,$40;ZEILENABSTAND 10/216+LF+INIT
  267. 6050 TABUMR .BYTE 0,$80,$40,$20
  268. 6060 .BYTE $10,$08,$04,$02,$01
  269. 7000 ;
  270. 7001 ;ZUORDNUNGSTABELLE
  271. 7002 ;*****************
  272. 7003 ;
  273. 7010 NADELTB .BYTE $18,$18,$18
  274. 7020 .BYTE $20,$20,$20
  275. 7030 .BYTE $30,$30,$20
  276. 7040 .BYTE $40,$40,$30
  277. 7050 .BYTE $50,$50,$40
  278. 7060 .BYTE $60,$50,$50
  279. 7070 .BYTE $70,$60,$60
  280. 7080 .BYTE $80,$70,$70
  281. 7100 ;
  282. 7110 .BYTE $08,$07,$07
  283. 7120 .BYTE $10,$18,$18
  284. 7130 .BYTE $20,$20,$20
  285. 7140 .BYTE $30,$30,$30
  286. 7150 .BYTE $40,$40,$30
  287. 7160 .BYTE $50,$50,$40
  288. 7170 .BYTE $60,$60,$50
  289. 7180 .BYTE $70,$60,$60
  290. 7200 ;
  291. 7210 .BYTE $07,$07,$06
  292. 7220 .BYTE $18,$07,$07
  293. 7230 .BYTE $10,$18,$18
  294. 7240 .BYTE $20,$20,$20
  295. 7250 .BYTE $30,$30,$30
  296. 7260 .BYTE $40,$40,$40
  297. 7270 .BYTE $50,$50,$40
  298. 7280 .BYTE $60,$60,$50
  299. 7300 ;
  300. 7310 .BYTE $06,$06,$05
  301. 7320 .BYTE $07,$07,$06
  302. 7330 .BYTE $18,$08,$07
  303. 7340 .BYTE $20,$18,$18
  304. 7350 .BYTE $20,$20,$20
  305. 7360 .BYTE $30,$30,$30
  306. 7370 .BYTE $40,$40,$40
  307. 7380 .BYTE $50,$50,$50
  308. 7400 ;
  309. 7410 .BYTE $05,$05,$05
  310. 7420 .BYTE $06,$06,$06
  311. 7430 .BYTE $07,$07,$06
  312. 7440 .BYTE $18,$08,$07
  313. 7450 .BYTE $20,$10,$18
  314. 7460 .BYTE $30,$20,$20
  315. 7470 .BYTE $30,$30,$30
  316. 7480 .BYTE $40,$40,$40
  317. 7500 ;
  318. 7510 .BYTE $04,$04,$04
  319. 7520 .BYTE $05,$05,$05
  320. 7530 .BYTE $06,$06,$06
  321. 7540 .BYTE $07,$07,$07
  322. 7550 .BYTE $18,$18,$07
  323. 7560 .BYTE $20,$10,$18
  324. 7570 .BYTE $30,$20,$20
  325. 7580 .BYTE $40,$30,$30
  326. 7600 ;
  327. 7610 .BYTE $04,$03,$03
  328. 7620 .BYTE $05,$04,$04
  329. 7630 .BYTE $05,$05,$05
  330. 7640 .BYTE $06,$06,$06
  331. 7650 .BYTE $07,$07,$07
  332. 7660 .BYTE $18,$18,$08
  333. 7670 .BYTE $20,$20,$18
  334. 7680 .BYTE $30,$20,$20
  335. 7700 ;
  336. 7710 .BYTE $03,$03,$02
  337. 7720 .BYTE $04,$03,$03
  338. 7730 .BYTE $05,$04,$04
  339. 7740 .BYTE $06,$05,$05
  340. 7750 .BYTE $06,$06,$06
  341. 7760 .BYTE $07,$07,$07
  342. 7770 .BYTE $18,$18,$08
  343. 7780 .BYTE $20,$20,$10
  344. 7800 ;
  345. 7810 .BYTE $02,$02,$01
  346. 7820 .BYTE $03,$03,$02
  347. 7830 .BYTE $04,$04,$03
  348. 7840 .BYTE $05,$04,$04
  349. 7850 .BYTE $06,$05,$05
  350. 7860 .BYTE $07,$06,$06
  351. 7870 .BYTE $07,$07,$07
  352. 7880 .BYTE $18,$18,$18
  353. 7890 ;
  354.